package com.jdd.modules.sdk.utils;

import com.sun.jna.Library;
import com.sun.jna.Pointer;


/**
 * @author ：jdd孙庆伟
 * @date ：Created in 2021/7/26 14:35
 * @description：
 * @modified By：`
 * @version: 1.0
 */
public interface HUAXIASDK extends Library {

    /**
     * @return void
     * @brief 全局初始化  初始化相机
     */
    public int ICE_IPCSDK_Init();

    /**
     * 关闭某个相机ip的连接
     *
     * @param handle
     */
    public void ICE_IPCSDK_Close(Pointer handle);

    /**
     * @return void
     * @brief 全局释放
     */
    public void ICE_IPCSDK_Fini();

    /**
     * @param ip 相机ip
     * @return sdk句柄(连接不成功时 ， 返回值为null ）
     * @brief 连接相机，不带视频流 连接相机
     */
    public Pointer ICE_IPCSDK_OpenDevice(String ip);

    /**
     * linux连接相机
     *
     * @author lcy
     */
    public Pointer ICE_IPCSDK_Open(String ip);

    /**
     * linux 回调事件
     */
    public Pointer ICE_IPCSDK_Open(String ip, IPlateCallback callback, int param);

    /**
     * @param hSDK SDK句柄
     * @return 1 成功 0 失败
     * @brief 打开道闸 开闸
     */
    public int ICE_IPCSDK_OpenGate(Pointer hSDK);

    /**
     * @param hSDK     连接相机时返回的sdk句柄
     * @param callback 实时识别数据，通过该回调获得
     * @param param    回调函数中的参数，能区分开不同的使用者即可
     * @return void
     * @brief 设置获得实时识别数据的相关回调函数
     */
    public void ICE_IPCSDK_SetPlateCallback(Pointer hSDK, IPlateCallback callback, int param);

    /**
     * @param hSDK   连接相机时返回的sdk句柄
     * @param enable 是否以UTF-8编码输出抓拍信息（1：UTF8格式输出车牌号，0：GB2312格式输出车牌号）
     *               return  void
     * @brief 车牌识别回调信息输出编码配置
     */
    public void ICE_IPCSDK_EnableUTF8(Pointer hSDK, int enable);

    /**
     * 查询设备是否在线
     *
     * @param pointer 句柄
     * @return boolean
     * @author jdd孙庆伟
     * @date 2021/7/28 10:59:53
     * @version 1.0
     */
    boolean ICE_IPCSDK_GetStatus(Pointer pointer);

    /**
     * @return 0表示成功，其他值表示失败
     * @brief 透明通道发送数据
     * @ingroup group_device
     */
    public int ICE_IPCSDK_TransSerialPort(Pointer hSDK, byte[] pData, int u32Len);

    /**
     * 软触发
     *
     * @param pointer
     * @return int
     * @author jdd孙庆伟
     * @date 2021/8/30 16:38:46
     * @version 1.0
     */
    public int ICE_IPCSDK_TriggerExt(Pointer pointer);


}
